const fs = require("fs");
const path = require("path");

let rs = fs.createReadStream(path.resolve(__dirname, "copy.txt"), {
  highWaterMark: 4, // 64k
});

let ws = fs.createWriteStream(path.resolve(__dirname, "copy1.txt"), {
  highWaterMark: 1, // 16k
});

// pipe 看不到内部如何操作
rs.pipe(ws); // 底层是异步的，内部采用了发布订阅，流式操作，读一点写一点

// rs.on("data", function (data) {
//   let flag = ws.write(data); // 写入后拿到返回值
//   console.log(data);
//   if (!flag) {
//     rs.pause();
//   }
// });
// ws.on("drain", function () {
//   // 等待内存消耗完毕后恢复读取
//   rs.resume();
// });
// rs.on("end", function () {
//   rs.close();
//   ws.end(); // write + close
// });

// ws.on("close", function () {
//   console.log("写入关闭");
// });
// rs.on("close", function () {
//   console.log("读取关闭");
// });
